package com.xu.system.service;

import com.xu.base.model.BaseSelectVo;
import com.xu.mybatis.model.PageInfo;
import com.xu.system.model.pojo.dept.*;

import java.util.List;

/**
 * 部门服务
 *
 * @Author: 许乾伟
 * @Date: 2024/12/17 16:47
 */
public interface IDeptService {
    /**
     * 新增部门
     * @param req 新增请求
     * @return true/false
     */
    Boolean add(AddDeptReq req);
    /**
     * 更新部门
     * @param req 更新请求
     * @return true/false
     */
    Boolean edit(EditDeptReq req);

    /**
     * 删除部门
     * @param deptId 部门id
     * @return true/false
     */
    Boolean del(Long deptId);

    /**
     * 部门详细信息
     * @param deptId
     * @return
     */
    DeptVo detail(Long deptId);

    /**
     * 分页查询
     * @param req 查询请求
     * @return 部门集合
     */
    PageInfo<DeptSimpleVo> pageInfo(QueryDeptReq req);

    /**
     * 全部门下拉列表
     * @return
     */
    List<BaseSelectVo<Long, String>> allSelectList();

    /**
     * 查询所有部门
     * @param req
     * @return
     */
    List<DeptSimpleVo> all(QueryDeptReq req);

    /**
     * 部门树
     * @param req
     * @return
     */
    List<DeptSimpleTreeVo> tree(QueryDeptReq req);
}
